A broadcast service provider transmits audio-video streams to a viewer's television. Interactive television systems are capable of displaying text and graphic images in addition to typical audio-video programs. They can also provide a number of services, such as commerce via the television, and other interactive applications to viewers. The interactive television signal can include an interactive portion consisting of application code, data, and signaling information, in addition to audio-video portions. The abbreviation “SI” in this application is used to refer to both signaling information and any of the application data that is sent according to a rigid format. The SI may include information such as times or channels upon which a particular television program will be shown, the genre of a particular program, or information identifying which elementary stream will carry the audio for a particular program in a particular language. This information can be combined into a single signal or several signals for transmission to a receiver connected to the viewer's television or the provider can include only a subset of the information, possibly with resource locators. Such resource locators can be used to indicate alternative sources of interactive and/or audio-video information. For example, the resource locator could take the form of a world wide web universal resource locator (URL).
The television signal is generally compressed prior to transmission and transmitted through typical broadcast media such as cable television (CATV) lines or direct satellite transmission systems. Information referenced by resource locators may be obtained over different media, for example, through an always-on return channel, such as a DOCSIS modem.
An integrated receiver decoder (IRD) controls the interactive functionality of the television. The IRD receives the signal, separates the interactive portion from the audio-video portion, and decompresses the respective portions of the signal. The IRD uses some of the interactive information to execute an application while some of the audio-video information is transmitted to the television.
An SI engine executes within an IRD, filtering the broadcast streams, extracting information requested by applications, and delivering information to applications. Such SI engines are typically constructed for use with a particular SI specification that is designed for a particular cable, satellite, RF or other system. That is, the code for the SI engine is tailored directly to the SI format used by that system. In response to an application's request for data, the SI engine sets masks for filters, modifies masks, receives information from the filters, and returns the information to the applications. The encoding of SI in the data stream is dependent on the format used in a particular system, and typically varies from one system to another, as well as slowly over time in the same system.
Thus, if a different system is to use a different SI specification, a new engine, possibly derived from an existing engine, must be constructed. SI specifications are often modified after a system is fielded, with the purpose of, for example, providing additional functionality. In these cases, the SI engine in such systems must be dynamically upgraded. As the SI engine is typically incorporated in either the operating system or the middleware that executes in the IRD, installation and/or modification is logistically complex, often expensive and certainly time-consuming.
It is also possible to always transmit formatting information (such as HTML tags) along with formatted data, However, this solution is not viable where bandwidth is limited, as is the case with television-related metadata, because in such cases, transmitting the format data itself every time the formatted data is sent would require an order of magnitude more bandwidth.
There is a need, therefore, for an improved SI engine capable of processing any SI format, that can be upgraded easily and without requiring continuous use of precious bandwidth on the broadcasting system.